一、CORBA的由來(lái)
CORBA全稱是公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(common object request broker architecture),它是由IBM、HP等多家公司聯(lián)合開發(fā)的部件軟件的體系結(jié)構(gòu)和部件接口標(biāo)準(zhǔn)。1997年8月版的CORBA2.1的版權(quán)頁(yè)上已方21個(gè)公司、組織。而支持CORBA的對(duì)象管理集團(tuán)OMG已達(dá)750多家公司。
對(duì)象管理組英文名是Object Management Group,簡(jiǎn)稱為OMG。OMG是以美國(guó)為主體的非盈利性國(guó)際組織,共目標(biāo)是為在計(jì)算機(jī)網(wǎng)絡(luò)上獨(dú)立開發(fā)的應(yīng)用軟件建立一個(gè)相互之間互操作性的標(biāo)準(zhǔn)。OMG的成員已包括絕大多數(shù)信息技術(shù)公司和終端用戶,其中心任務(wù)是接納廣泛認(rèn)可的對(duì)象管理體系結(jié)構(gòu)(Object Management architecture,簡(jiǎn)稱為OMA)
或其語(yǔ)境(context)中的接口和規(guī)程的規(guī)范。OMA以分布式的對(duì)象為集成單位。以對(duì)象為
基礎(chǔ)來(lái)構(gòu)作分布犬應(yīng)用系統(tǒng)的最大優(yōu)點(diǎn)是對(duì)象的封裝性:對(duì)象的數(shù)據(jù)和狀態(tài)只能通過(guò)對(duì)
象上定義的一組運(yùn)算來(lái)訪問(wèn),而不允許直接存取。因此易于處理平臺(tái)的異構(gòu)性,因?yàn)閿?shù)據(jù)表達(dá)的互異已被隱藏,從而簡(jiǎn)化了系統(tǒng)的集成。
最初,OMG在1990年制訂了對(duì)象管理體系結(jié)構(gòu)OMA。OMA是比CORBA更高一層的概念,它定義了一種體系結(jié)構(gòu),在OMA之上可以用任何方法來(lái)實(shí)現(xiàn)。CORBA是其中的一種實(shí)現(xiàn)方案。
二、對(duì)象管理體系結(jié)構(gòu)OMA
OMA由對(duì)象模型(objet model)和參考模型(reference model)組成。對(duì)象模型主要定義了如何描述在異種(heterogeneous)環(huán)境中的分布式對(duì)象;參考模型則刻畫了對(duì)象之間的交互,其組成可以由圖1來(lái)表示。
圖1 OMA參考模型
其中ORB作為對(duì)象互相通信的軟總線,用來(lái)聯(lián)系客戶端和對(duì)象間的通信。ORB是OMA參考模型的核心,它保證在分布式異構(gòu)環(huán)境中透明地向?qū)ο蟀l(fā)送和接收請(qǐng)求,幫助實(shí)現(xiàn)應(yīng)用部件之間的互操作。
在ORB之上有4個(gè)對(duì)象接口:
(1)對(duì)象服務(wù)object services(OS)。定義加入ORB的系統(tǒng)級(jí)服務(wù),如安全性、命名和事務(wù)處理,它們是與應(yīng)用域無(wú)關(guān)的。對(duì)象服務(wù)是一些最有可能被用來(lái)支持分布式對(duì)象環(huán)境F構(gòu)造應(yīng)用的標(biāo)準(zhǔn)化部件。目前通過(guò)的對(duì)象服務(wù)包括對(duì)象命名服務(wù)、事件服務(wù)、對(duì)象生存期服務(wù)、永久對(duì)象服務(wù)、對(duì)象關(guān)系服務(wù)以及事務(wù)服務(wù)、并發(fā)控制服務(wù)等等。
(2)公共設(shè)施common facilities(CF)。水平級(jí)的服務(wù),定義應(yīng)用程序級(jí)服務(wù),如復(fù)合文檔等。公共設(shè)施是比對(duì)象服務(wù)粒度更大的可重用的部件塊。它主要用來(lái)幫助構(gòu)造跨多個(gè)應(yīng)用域的應(yīng)用程序。典型的公共設(shè)施包括用戶接口、信息管理、系統(tǒng)管理和任務(wù)管理等。
(3)領(lǐng)域接口如domain interfaces(DI)。面向待定的領(lǐng)域,在OMA中所處的位置與對(duì)象服務(wù)與公共設(shè)施相似。
(4)應(yīng)用接口application interfaces(AI)。面向指定的現(xiàn)實(shí)世界應(yīng)用。是指供應(yīng)商或用戶借助于ORB、公共對(duì)象服務(wù)及公共設(shè)施而開發(fā)的特定產(chǎn)品,它不在CORBA體系結(jié)構(gòu)中標(biāo)推化。
同時(shí),OMA還定義了OMA參考模型的應(yīng)用:對(duì)象框架(object frameworks)。它是多個(gè)部件組成的一種面向特定領(lǐng)域的框架結(jié)構(gòu),每個(gè)部件由一個(gè)OMA接口組成。其組成可
以用圖2說(shuō)明。
圖2 OMA的對(duì)象框架
三、CORBA的結(jié)構(gòu)基礎(chǔ)
CORBA的結(jié)構(gòu)基礎(chǔ)是OMG的核心對(duì)象模型(CORE object model)。部件可作為對(duì)象,以客戶身份通過(guò)封裝的接口提出請(qǐng)求,并獲取服務(wù)對(duì)象所提供的服務(wù),形成協(xié)同工作的系統(tǒng)。為了達(dá)到互操作性,設(shè)計(jì)了對(duì)象請(qǐng)求代理ORB(object request broker)作為通信的基礎(chǔ)設(shè)施。ORB能夠幫助對(duì)象實(shí)現(xiàn)和網(wǎng)絡(luò)上另一個(gè)對(duì)象的握手過(guò)程。1994年末出臺(tái)的
C0RBA 2.0允許不同廠商的ORB協(xié)同工作。它截獲客戶的請(qǐng)求,并負(fù)責(zé)找出實(shí)現(xiàn)其請(qǐng)求的服務(wù)對(duì)象;傳送參數(shù)及調(diào)用方法給服務(wù)對(duì)象,并負(fù)責(zé)返回結(jié)果??蛻舨槐刂婪?wù)對(duì)
象是位于同一機(jī)器或是跨網(wǎng)位于不同機(jī)器上;也不要求客戶與服務(wù)對(duì)象是否有同一編程
語(yǔ)言、運(yùn)行于何種平臺(tái)、使用何種操作系統(tǒng)或有否其他特征。即由ORB來(lái)提供異步分布
環(huán)境中不同機(jī)器上應(yīng)用的互操作性。
CORBA是建立在OMA概念之上,是OMG所采納的第一個(gè)標(biāo)準(zhǔn),同時(shí)也是OMA的一個(gè)重要組成部分。CORBA的OMA定義了一個(gè)四層模型,并且規(guī)定了其IDL語(yǔ)言(interface definitin language)工作于各個(gè)層面。四層模型的底層是ORB;直接建筑在ORB層之上的,是Object Service Layer,它負(fù)責(zé)對(duì)象的命名、創(chuàng)建和管理;第三層是Common Facilities Layer,在這一層完成用戶對(duì)象直接使用的一些功能,而最高層是Business 0bject,像Java和ActiveX applets等。
對(duì)應(yīng)OMA參考模型,CORBA也相應(yīng)的有4個(gè)對(duì)象接口接口對(duì)應(yīng):
. CORBA服務(wù)(CORBA servies)對(duì)應(yīng)對(duì)象服務(wù)。
. 應(yīng)用對(duì)象(application object)對(duì)應(yīng)應(yīng)用接口。
. CORBA領(lǐng)域(CORBA domains)對(duì)應(yīng)領(lǐng)域接口。
目前CORBA已經(jīng)發(fā)展到CORBA 2.0。CORBA 2.0主要包括以下幾個(gè)部分:
·0RB核心(core)。
·OMG接口定義語(yǔ)言IDL。
·語(yǔ)言映射(language mapping)。
·運(yùn)行機(jī)制。
·靜態(tài)調(diào)用:包括Stub and Skeleton。
·動(dòng)態(tài)調(diào)用:包括動(dòng)態(tài)Skeleton和接口庫(kù)(interface repository)。
·對(duì)象適配器(object adapter)。
·Inter—ORB協(xié)議。
C0RBA的組成見(jiàn)圖3,該圖表示了客戶、服務(wù)的執(zhí)行對(duì)象與0RB接口間的關(guān)系。
圖3 CORBA的組成
ORB能識(shí)別的協(xié)議是OMG的接口定義語(yǔ)言IDL。它可完整地確定部件的接口——即客戶所需使用接口的全部信息。
IDL定義的接口經(jīng)IDL編譯器編譯后能產(chǎn)生客戶的樁(stub)及執(zhí)行對(duì)象的骨架(skeleton)這類能與ORB通信的接口:
(1)接口樁stub。在編譯時(shí)確定的靜態(tài)接口。它位于客戶對(duì)象的本地,接受客戶的請(qǐng)求,對(duì)客戶來(lái)說(shuō)相當(dāng)于遠(yuǎn)程的執(zhí)行對(duì)象。接口樁向ORB提交請(qǐng)求。
(2)動(dòng)態(tài)調(diào)用接口(DII)。用于編譯時(shí)不能確定的請(qǐng)求。與接口樁作用相同。
(3)骨架Skeleton。分動(dòng)態(tài)骨架與靜態(tài)骨架。它針對(duì)執(zhí)行對(duì)象來(lái)說(shuō)代表了遠(yuǎn)程客戶的作用,可在本地調(diào)用執(zhí)行對(duì)象服務(wù),并與ORB通信。
(4)對(duì)象適配器。提供執(zhí)行對(duì)象可以訪問(wèn)ORB服務(wù)的基本接口,其作用是產(chǎn)生及解釋對(duì)象引用、安全交互、登記和執(zhí)行等等。
ORB可以用各種方式來(lái)實(shí)現(xiàn),只要滿足CORBA規(guī)定的規(guī)范即可。具體ORB實(shí)現(xiàn)之間亦可存在接口關(guān)系。
CORBA作為標(biāo)準(zhǔn)化接口的規(guī)范及體系結(jié)構(gòu)正在發(fā)展中,最初僅考慮基本機(jī)制。隨著對(duì)異構(gòu)分布應(yīng)用互操作性的深入認(rèn)識(shí),不斷有人提出CORBA應(yīng)提供更多的服務(wù)要求RFP(request for Proposal),如命名服務(wù)、交易服務(wù)和生命周期等等。CORBA 2.1中都已納入以上服務(wù)要求。但新的要求,如實(shí)時(shí)系統(tǒng)CORBA、CORBA部件模型和CORBA版本語(yǔ)言等等又作為新的RFP已正式提出。CORBA的產(chǎn)品亦紛紛問(wèn)世,當(dāng)然又產(chǎn)生了各
CORBA產(chǎn)品之間的兼容性問(wèn)題了。
在1996年中期,CORBA向Internet適應(yīng)的要求被提出,并得到了除微軟以外的眾多公司的響應(yīng)。CORBA的開發(fā)者創(chuàng)造了被OMG稱作“ORBlet”的Java applet,它被下載到使用Java的瀏覽器后,能夠同其他與CORBA標(biāo)準(zhǔn)兼容的對(duì)象和服務(wù)進(jìn)行通信交互?,F(xiàn)在ORBlet已經(jīng)能夠從Sun、HP、IBM、Iona Technologies InL、Oracle Corp.處得到。最
終,對(duì)CORBA的支持將集成到Java瀏覽器之中。
直到最近,OMG仍然將重點(diǎn)放在對(duì)象級(jí)的標(biāo)準(zhǔn)上。OMG僅僅制定標(biāo)準(zhǔn),而并不生產(chǎn)軟件產(chǎn)品或分布部件平臺(tái)。但由于微軟的壟斷地位和市場(chǎng)的壓力,它也發(fā)展相應(yīng)的標(biāo)準(zhǔn)來(lái)
保證CORBA和COM對(duì)象的交互兼容性。同樣的理由也將使之出臺(tái)DCOM和CORBA的交互協(xié)議。
四、應(yīng)用
CORBA定義了一個(gè)帶有開放軟件總線的分布式結(jié)構(gòu),在這一結(jié)構(gòu)中,來(lái)自不同廠商的、運(yùn)行在不同操作系統(tǒng)上的對(duì)象,能夠進(jìn)行互操作,
CORBA定義了分布式對(duì)象如何實(shí)現(xiàn)互操作。在World Wide Web盛行之前,特別是 Java編程語(yǔ)言風(fēng)靡之前,C++開發(fā)者基本將CORBA作為其高端分布式對(duì)象的解決方案。CORBA對(duì)象可以用任何一種cORBA軟件開發(fā)商所支持的語(yǔ)言,如C、C++、Java、Ada和Smalltalk來(lái)編寫。
使用接口描述語(yǔ)言(interface description language)編寫的對(duì)象接口,使得與語(yǔ)言無(wú)關(guān)的獨(dú)立性成為可能。IDL使得所有CORBA對(duì)象以—種方式被描述,僅僅需要一個(gè)由本地語(yǔ)言(C/C++、CORBA、Java)到IDL的“橋梁”。CORBA對(duì)象的互通信要以對(duì)象請(qǐng)求代理(object request broker)為中介,這種互通可以在多種流行通信協(xié)議之上(如TCP/IP或是IPX/SPX)實(shí)現(xiàn)。在TCP/IP上,來(lái)自于不同開發(fā)商的ORB用nternet Inter-Orb協(xié)議(IIOP)進(jìn)行通信。IIOP是ORB保證對(duì)象間互操作的必要的通信協(xié)議,是CORBA 2.0標(biāo)準(zhǔn)的一部分。
當(dāng)前,CORBA對(duì)于流行的操作系統(tǒng)如Windows、Unix系列都有很好的支持。就是說(shuō),CORBA對(duì)象可以運(yùn)行在任何一種CORBA軟件開發(fā)商所支持的平臺(tái)上,如Solaris、
Windows95/NT、Open VMS、Digital Unix、HP—UX或AIX等。換句話說(shuō),我們可以在
Windows95下運(yùn)行Java應(yīng)用程序,同時(shí)動(dòng)態(tài)調(diào)入并使用C++對(duì)象,而實(shí)際上,該對(duì)象可
能存儲(chǔ)于一個(gè)在Internet上的Unix Web服務(wù)器上。目前,對(duì)于較為流行的編程語(yǔ)言(包括(C++、SmalltaLk、Java和Ada95),已經(jīng)有了許多第三方的ORB。隨著其他語(yǔ)言的逐漸流行,CORBA開發(fā)商毫無(wú)疑問(wèn)地要做出相應(yīng)的ORB來(lái)支持它們。
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)以權(quán)威部門公布的內(nèi)容為準(zhǔn)!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛(ài)好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過(guò)深研歷年考試出題規(guī)律與考試大綱,深挖核心知識(shí)與高頻考點(diǎn),為學(xué)員考試保駕護(hù)航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評(píng)論 查看完整評(píng)論 | |